package com.netty.tcp.ew.domain;

import com.fasterxml.jackson.annotation.JsonFormat;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 计价方案对象 base_price
 * 
 * @author Mr.wu
 * @date 2023-11-11
 */
public class BasePrice
{
    private static final long serialVersionUID = 1L;

    /** 价格方案ID */
    private Integer priceId;

    /** 价格方案名称 */

    private String priceName;

    /** 价格周期(0-每年,1-每半年,2-每季度,3-每月,4-每旬,5-每周) */

    private String priceCycle;

    /** 周期内计价次数 */

    private Integer priceCycleTimes;

    /** 价格类型：(0-单一价格,2-分段计价,3-阶梯计价) */

    private String priceType;

    /** 价格 */

    private BigDecimal priceNumber;

    /** 计价单位 */

    private String priceUnit;

    /** 价格（尖）*/
    private BigDecimal priceSpike;

    /** 价格（峰）*/
    private BigDecimal pricePeak;

    /** 价格（平）*/
    private BigDecimal priceFlat;

    /** 价格（谷）*/
    private BigDecimal priceValley;

    /** 计价月份 */

    private String priceMonth;

    /**  计价周 */

    private String priceWeek;

    /** 计价日 */

    private String priceDay;

    /** 计价时间 */
    @JsonFormat(pattern = "hh:mm:ss")

    private Date priceTime;

    /** 数据归属 */
    private Integer companyId;

    /** 阶梯价格 */
    private String basePriceLevel;



    public void setPriceId(Integer priceId) 
    {
        this.priceId = priceId;
    }

    public Integer getPriceId() 
    {
        return priceId;
    }
    public void setPriceName(String priceName) 
    {
        this.priceName = priceName;
    }

    public String getPriceName() 
    {
        return priceName;
    }
    public void setPriceCycle(String priceCycle) 
    {
        this.priceCycle = priceCycle;
    }

    public String getPriceCycle() 
    {
        return priceCycle;
    }
    public void setPriceCycleTimes(Integer priceCycleTimes)
    {
        this.priceCycleTimes = priceCycleTimes;
    }

    public Integer getPriceCycleTimes()
    {
        return priceCycleTimes;
    }
    public void setPriceType(String priceType) 
    {
        this.priceType = priceType;
    }

    public String getPriceType() 
    {
        return priceType;
    }
    public void setPriceNumber(BigDecimal priceNumber) 
    {
        this.priceNumber = priceNumber;
    }

    public BigDecimal getPriceNumber() 
    {
        return priceNumber;
    }
    public void setPriceUnit(String priceUnit) 
    {
        this.priceUnit = priceUnit;
    }

    public String getPriceUnit() 
    {
        return priceUnit;
    }

    public  void setPriceSpike(BigDecimal priceSpike){ this.priceSpike = priceSpike;}
    public BigDecimal getPriceSpike(){ return  priceSpike;}

    public void setPricePeak(BigDecimal pricePeak){ this.pricePeak = pricePeak; }
    public BigDecimal getPricePeak(){ return pricePeak;}

    public void setPriceFlat(BigDecimal priceFlat){ this.priceFlat = priceFlat;}
    public BigDecimal getPriceFlat(){ return priceFlat;}

    public void setPriceValley(BigDecimal priceValley){ this.priceValley = priceValley;}
    public BigDecimal getPriceValley(){ return priceValley;};
    public void setPriceMonth(String priceMonth) 
    {
        this.priceMonth = priceMonth;
    }

    public String getPriceMonth() 
    {
        return priceMonth;
    }
    public void setPriceWeek(String priceWeek)
    {
        this.priceWeek = priceWeek;
    }

    public String getPriceWeek()
    {
        return priceWeek;
    }
    public void setPriceDay(String priceDay) 
    {
        this.priceDay = priceDay;
    }

    public String getPriceDay() 
    {
        return priceDay;
    }
    public void setPriceTime(Date priceTime)
    {
        this.priceTime = priceTime;
    }

    public Date getPriceTime()
    {
        return priceTime;
    }
    public void setCompanyId(Integer companyId) 
    {
        this.companyId = companyId;
    }

    public Integer getCompanyId() 
    {
        return companyId;
    }

    public void setBasePriceLevel(String basePriceLevel){
        this.basePriceLevel = basePriceLevel;
    }

    public String getbasePriceLevel(){
        return basePriceLevel;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("priceId", getPriceId())
            .append("priceName", getPriceName())
            .append("priceCycle", getPriceCycle())
            .append("priceCycleTimes", getPriceCycleTimes())
            .append("priceType", getPriceType())
            .append("priceNumber", getPriceNumber())
            .append("priceUnit", getPriceUnit())
            .append("priceSpike",getPriceSpike())
            .append("pricePeak",getPricePeak())
            .append("priceFlat",getPriceFlat())
            .append("priceValley",getPriceValley())
            .append("priceMonth", getPriceMonth())
            .append("priceWeek", getPriceWeek())
            .append("priceDay", getPriceDay())
            .append("priceTime", getPriceTime())
            .append("basePriceLevel",getbasePriceLevel())
            .append("companyId", getCompanyId())
            .toString();
    }
}
